const got = require('@/utils/got');
const timezone = require('@/utils/timezone');
const { parseDate } = require('@/utils/parse-date');
const { art } = require('@/utils/render');
const path = require('path');

module.exports = async (ctx) => {
    const referer = 'https://ff.sdo.com/web8/index.html';
    const type = ctx.params.type ?? 'all';

    const type_number = {
        news: '5310',
        announce: '5312',
        events: '5311',
        advertise: '5313',
        all: '5310,5312,5311,5313,5309',
    };

    const response = await got({
        method: 'get',
        url: `http://api.act.sdo.com/UnionNews/List?gameCode=ff&category=${type_number[type]}&pageIndex=0&pageSize=50`,
        headers: {
            Referer: referer,
        },
    });

    const data = response.data.Data;

    ctx.state.data = {
        title: '最终幻想14（国服）新闻中心',
        link: referer + '#/newstab/newslist',
        description: '《最终幻想14》是史克威尔艾尼克斯出品的全球经典游戏品牌FINAL FANTASY系列的最新作品，IGN获得9.2高分！全球累计用户突破1600万！',
        item: data.map(({ Title, Summary, Author, PublishDate, HomeImagePath }) => ({
            title: Title,
            link: Author,
            description: art(path.join(__dirname, 'templates/description.art'), {
                image: HomeImagePath,
                description: Summary,
            }),
            pubDate: timezone(parseDate(PublishDate), +8),
        })),
    };
};
